Swagger란?

개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크

Posted by ChaelinJ on July 15, 2021

Swagger?

스웨거는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크입니다.

출처: 위키백과

UI를 통해 REST API 테스트를 쉽게 할 수 있고, 예시 데이터를 원하는대로 미리 입력할 수 있습니다. 간단하게 어노테이션으로 설정할 수 있습니다.

위처럼 여러 메소드를 화면에서 확인할 수 있고 각각의 탭에서 메소드 실행이 가능합니다.


Setting

  • Spring boot
  • Maven

pom.xml

dependency 추가합니다.

<!--swagger-->
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger-ui</artifactId>
	<version>2.9.2</version>
</dependency>

<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId>
	<version>2.9.2</version>
</dependency>


SwaggerConfig.java

Configuration을 위한 파일을 추가합니다.

import와 package는 제외하였습니다.

@Configuration: @Bean을 사용해 1개 이상의 Bean을 생성하고 있음을 명시합니다. @EnableSwagger2: Spring Boot에서 Swagger를 사용가능하게 하는 어노테이션으로, main spring boot application에 추가하여도 됩니다. @Bean: Spring IoC Container에 Bean을 등록하도록 하는 어노테이션으로 외부 라이브러리 등을 Bean으로 만들 때 사용합니다.

  • Title, Description 등 필요한 부분 기입 후, 적용할 Controller가 위치하는 package를 basePackage에 기입합니다.
  • PathSelectors를 통해 url을 선택적으로 적용할 수 있습니다.

controller.java

이런식으로 ApiOperation 어노테이션에 value와 notes를 기입하면 Swagger UI에서 확인할 수 있게 됩니다.

이렇게 각각의 input 값을 지정할 수 도 있고, ApiOperation에 example=”“에 기입하면 예시 값도 미리 지정할 수 있습니다.

Swagger-Ui

localhost:8080/swagger-ui.html로 들어가면 위의 실행 화면을 볼 수 있습니다.

[Execute]를 통해 실행하여 하단에서 결과를 확인할 수 있습니다.


참고


감사합니다.

Text by Chaelin. Photographs by Chaelin, Unsplash.